home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 301-325 / disk_319 / cnewssrc / uupc.lzh / uupc / chdir.c next >
C/C++ Source or Header  |  1990-01-16  |  1KB  |  72 lines

  1. /*
  2.  *    chdir
  3.  *
  4.  *    Amiga (Manx) Library
  5.  *
  6.  *    $Id: chdir.c,v 1.2 90/01/16 10:24:41 crash Exp Locker: crash $
  7.  */
  8.  
  9. #ifndef lint
  10. static char RCSid[] = "$Id: chdir.c,v 1.2 90/01/16 10:24:41 crash Exp Locker: crash $";
  11. #endif /* lint */
  12.  
  13. #include <libraries/dos.h>
  14. #include <exec/memory.h>
  15.  
  16. #ifdef MCH_AMIGA
  17. # include <functions.h>        /* Manx */
  18. #else
  19. # include <proto/exec.h>    /* Lattice */
  20. #endif
  21.  
  22. #ifdef TEST
  23. # include <stdio.h>
  24. #endif
  25.  
  26. #ifndef NULL
  27. # define NULL 0L
  28. #endif
  29.  
  30.  
  31. /*------------------------------------------------------------------*/
  32. /*    chdir(path): make path the current directory. Return Ok/Not        */
  33. /*------------------------------------------------------------------*/
  34.  
  35. int    chdir(path)
  36. char *path;
  37. {
  38.     register struct FileLock *lock;
  39.     struct FileLock *oldLock;
  40.  
  41. #ifdef TEST
  42.     fprintf( stderr, "Changing to directory \"%s\"\n\n", path );
  43. #endif    
  44.  
  45.     lock = Lock(path, ACCESS_READ);
  46.     if (!lock)
  47.         return (int) IoErr();
  48.     oldLock = CurrentDir(lock);
  49.     if (oldLock)
  50.         UnLock(oldLock);
  51.     return 0;
  52. }
  53.  
  54. #ifdef TEST
  55. main()
  56. {
  57.     char command[108];
  58.     FILE *f;
  59.  
  60.     gets(command);
  61.     fprintf(stderr, "%d\n", chdir(command));
  62.  
  63.     if (f = fopen("abc", "r")) {
  64.         fprintf(stderr, "Opened Ok!\n");
  65.         fclose(f);
  66.     } else
  67.         fprintf(stderr, "Can't open abc\n");
  68.  
  69.     return( NULL );
  70. }
  71. #endif /* TEST */
  72.